package com.xqgl.service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.xqgl.bean.Equip;
import com.xqgl.dao.EquipDao;
import com.xqgl.util.ConnertionUtil;

public class EquipDaoImp implements EquipDao{
	Connection conn = ConnertionUtil.getConnection();
	PreparedStatement ps;
	Statement statement;
	
	public ArrayList<Equip> getAllUserInfos() {
		ArrayList<Equip> equips = new ArrayList<>();
		String sql = "select * from equip ";
		try {
			ps = conn.prepareStatement(sql);
			ResultSet rst=ps.executeQuery(sql);
			while(rst.next()) {
				Equip equip = new Equip();
				equip.setId(rst.getInt("id"));
				equip.setVillagename(rst.getString("villagename"));
				equip.setEquipnum(rst.getString("equipnum"));
				equip.setEquipname(rst.getString("equipname"));
				equip.setBrand(rst.getString("brand"));
				equip.setUnitprice(rst.getDouble("unitprice"));
				equip.setPurchasenum(rst.getInt("purchasenum"));
				equip.setPurchasedate(rst.getString("purchasedate"));
				equip.setServicelife(rst.getString("servicelife"));
				equip.setEquipctime(rst.getString("equipctime"));
				equips.add(equip);
			}		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return equips;
	}
	
	@Override
	public int add(Equip equip) throws SQLException {
		String sql = "insert into equip(villagename,equipnum,equipname,brand,unitprice,purchasenum,purchasedate,servicelife,equipctime)"
				+ "values(?,?,?,?,?,?,?,?,?)";
		ps = conn.prepareStatement(sql);
		ps.setString(1, equip.getVillagename());
		ps.setString(2, equip.getEquipnum());
		ps.setString(3, equip.getEquipname());
		ps.setString(4, equip.getBrand());
		ps.setDouble(5, equip.getUnitprice());
		ps.setInt(6, equip.getPurchasenum());
		ps.setString(7, equip.getPurchasedate());
		ps.setString(8, equip.getServicelife());
		ps.setString(9, equip.getEquipctime());
		int a = ps.executeUpdate();
		ps.close();
		return a;
	}
	@Override
	public int update(Equip equip) throws SQLException {
		String sql = "update equip set villagename = '"+equip.getVillagename()+"', equipnum = '"+equip.getEquipnum()+"', equipname = '"+equip.getEquipname()+"', brand = '"+equip.getBrand()+"', "
				+ "unitprice = "+equip.getUnitprice()+", purchasenum = "+equip.getPurchasenum()+", purchasedate = '"+equip.getPurchasedate()+"', servicelife = '"+equip.getServicelife()+"', equipctime = '"+equip.getEquipctime()+"' where id = "+equip.getId()+"";
		ps = conn.prepareStatement(sql);
		int b = ps.executeUpdate();
		ps.close();
		return b;
	}
	@Override
	public boolean delete(int id) throws SQLException {
		String sql = "delete from equip where id = "+id+"";
		statement = conn.createStatement();
		boolean c = statement.execute(sql);
		statement.close();
		return !c;
	}
	@Override
	public Equip findById(int id) throws SQLException {
		Equip equip = new Equip();
		String sql = "select * from equip where id = ?";
		ps = conn.prepareStatement(sql);
		ps.setInt(1, id);
		ResultSet set = ps.executeQuery();
		while(set.next()){
			equip.setId(set.getInt("id"));
			equip.setVillagename(set.getString("villagename"));
			equip.setEquipnum(set.getString("equipnum"));
			equip.setEquipname(set.getString("equipname"));
			equip.setBrand(set.getString("brand"));
			equip.setUnitprice(set.getDouble("unitprice"));
			equip.setPurchasenum(set.getInt("purchasenum"));
			equip.setPurchasedate(set.getString("purchasedate"));
			equip.setServicelife(set.getString("servicelife"));
			equip.setEquipctime(set.getString("equipctime"));
		}
		ps.close();
		return equip;
	}
}
